#pragma once

#include "IWriter.hpp"
#include <string>
#include <iostream>

class CMemWriter : public IWriter{
public:
    CMemWriter() = default;
    // CMemWriter() = delete;
    ~CMemWriter() = default;
    CMemWriter(const CMemWriter&) = delete;
    CMemWriter& operator=(const CMemWriter&) = delete;
    CMemWriter(const CMemWriter&&) = delete;
    CMemWriter& operator=(const CMemWriter&&) = delete;
    // IWrite Interface
    int WriteAtBegin(void* data,int length) override{
        std::cout << "write" << length << " byte at memory begin" << std::endl;
        return length;
    }

    int WriteAt(int pos,void* data,int length) override{
        std::cout << "write" << length << " byte at memory " << pos << std::endl;
        return length;
    }

    int WriteEnd(void* data,int length) override{
        std::cout << "write" << length << " byte at memory end" << std::endl;
        return length;
    }
private:

};